<!--宏-->
<!--定义宏,其中render_nav就是宏的名称,相当于一个函数名，在其他文件里面直接调用-->
{% macro render_nav(navs) %}
	<ul>
		{% for nav in navs %}
			<li>{{nav}}</li>
		{% endfor %}
	</ul>
{% endmacro %}
<!--
表单验证错误执行的函数
-->
{% macro form_error_handler(form,filedName) %}
	{% if form.errors %}
		{% for k in form.errors %}
			{% if k==filedName %}					
				<span style="color:#ff0000">{{ form.errors[k][0] }}</span>							
			{% endif %}
		{% endfor %}
	{% endif %}
{% endmacro %}

<!-- 
创建快捷导航
@param navs 导航标签list
@param fns  对应标签执行的视图函数
-->
{% macro mkShortCutNav(navs,fns,kwList) %} <!-- 创建快捷文本导航 -->
	<div>
		{% for nav in navs %}
			{% if loop.index==loop.length %}
				<span>{{ nav }}:</span>
			{% else %}
				<a href="{{ url_for(fns[loop.index-1],**kwList[loop.index-1]) }}">{{ nav }}</a><span>-></span>
			{% endif %}
		{% endfor %}
	</div>
{% endmacro %}

{% macro renderForm(form,title,id='formIpt') %}
	{% import 'bootstrap/wtf.html' as wtf %}
	<div {% if id!='' %} id="{{id}}" {% endif %}  class="center-block" > <!-- class="center-block" 是bootstrap设置元素居中的语法，其中必须设置元素的宽  -->
		<h1>{{ title }}</h1>
		{{ wtf.quick_form(form)  }}		
	</div>
{% endmacro %}

<!--渲染博客列表的宏-->
{% macro randerPost(posts,moment,current_user) %}
	<ul class="posts">
		{% for post in posts %}
			<li class="post">
				<div class="profile-thumbnail">
					<a href="{{ url_for('main.user',username=post.author.username)}}">
						<img class="img-rounded profile-thumbnail user-avatar" src="{{ url_for('static',filename='images/avatar/avatar.png') }}">
					</a>
				</div>
				<div class="post-date">{{ moment(post.timestamp).fromNow() }}</div>
				<div class="postListContent">
					<div class="post-author">
					<a href="{{ url_for('.user',username=post.author.username)}}">{{ post.author.username }}</a>
					</div>
					<div class="post-body"><a href="{{ url_for('main.post_detail',id=post.id) }}">					
						{{ post.title }}
					</a>
					{% if current_user.id == post.author.id or current_user.is_admin() %}
						<a class="label label-primary" href="{{ url_for('main.edit_post',id=post.id) }}">编辑</a>
					{% endif %}

					{% if post.getCommentCount() > 0 %}
						<a class="label label-primary" href="{{ url_for('main.post_detail',id=post.id) }}">{{ post.getCommentCount() }}评论</a>
					{% endif %}					
					</div>
				</div>
				
			</li>
		{% endfor %}
	</ul>
{% endmacro %}
<!-- 创建一个bootstrap的分页管理器;
pagination 是flask_sqlaichemy的对象 
endpoint   页面跳转接收参数的视图函数
注意：宏定义中有一个隐藏的关键字参数列表,不需要添加关键字参数也可传关键字参数
-->
{% macro pagination_widget(pagination, endpoint) %}
	<ul class="pagination">
		<li{% if not pagination.has_prev %} class="disabled"{% endif %}>
			<a href="{% if pagination.has_prev %}{{ url_for(endpoint,
			page = pagination.page - 1, **kwargs) }}{% else %}#{% endif %}">
			&laquo;
			</a>
		</li>
		{% for p in pagination.iter_pages() %}
			{% if p %}
				{% if p == pagination.page %}
					<li class="active">
					<a href="{{ url_for(endpoint, page = p, **kwargs) }}">{{ p }}</a>
					</li>
				{% else %}
					<li>
					<a href="{{ url_for(endpoint, page = p, **kwargs) }}">{{ p }}</a>
					</li>
				{% endif %}
			{% else %}
				<li class="disabled"><a href="#">&hellip;</a></li>
			{% endif %}
		{% endfor %}
		<li{% if not pagination.has_next %} class="disabled"{% endif %}>
			<a href="{% if pagination.has_next %}{{ url_for(endpoint,
			page = pagination.page + 1, **kwargs) }}{% else %}#{% endif %}">
			&raquo;
			</a>
		</li>
	</ul>
{% endmacro %}

<!--渲染博客下面的评论列表-->
{% macro rendComments(comments) %}
	{% for comment in comments %}
		<div class="contentArea">	
			<div class="commentUser"><a href="{{ url_for('.user',username=comment.author.username) }}">{{ comment.author.username }}</a></div>	
			<div class="commentContent">				
				{% if comment.body_html %}
					{{ comment.body_html|safe }}
				{% else %}
					{{ comment.body }}
				{% endif %}
			</div>
		</div>	
	{% endfor %}
{% endmacro %}

<!-- 渲染用户管理列表的单个用户cell -->
{% macro rendAdminUserCell(user,cssClass) %}
	<div class="{{ cssClass }}">
		<div class="user-inf">
			用户名：<a href="{{ url_for('admin.editProfileAdmin',id=user.id) }}">{{ user.username }}</a><br>
			角　色：<span>{{ user.role.name }}</span><br>
			名　字：<span>{{ user.name }}</span><br>
			地　址：<span>{{ user.location }}</span><br>
			注册时间：<span>{{ user.member_since|utcToLocal }}</span><br>
			上次登录：<span>{{ user.member_since|utcToLocal }}</span><br>
		</div>
		<a data-toggle="tooltip" data-placement="top" title="修改[{{ user.username }}]的资料" class="btn btn-info user-cell-btn" href="{{ url_for('admin.editProfileAdmin',id=user.id) }}">修改信息</a>
		<a data-toggle="tooltip" data-placement="top" title="删除用户[{{ user.username }}]" class="btn btn-info user-cell-btn" href="{{ url_for('admin.editProfileAdmin',id=user.id) }}">删除</a>
	</div>
{% endmacro %}